package main
import (
	"fmt"
	"time"
	"strconv"
)
//日期和时间相关函数：
func temp(){
	str := ""
	for i := 0;i < 100000;i++{
		str += "str" + strconv.Itoa(i)
	}
}



func main(){
	//1. 获取当前时间
	now := time.Now();
	fmt.Printf("Now time is %v , Type is %T \n",now,now)

	//2. 通过上面的now获取年月日时分秒！
	fmt.Println("年：",now.Year())
	fmt.Println("月：",now.Month())
	fmt.Println("日：",now.Day())
	fmt.Println("时：",now.Hour())
	fmt.Println("分：",now.Minute())
	fmt.Println("秒：",now.Second())

	//3. 格式化日期 ; 要取那部分时间就格式化哪部分，如下
	fmt.Println("当前时间：",now.Format("2006/01/02 15:04:05"))  //该Format格式化内的时间时强制要求该时间!
	fmt.Println("当前时间：",now.Format("15:04:05"))  //该Format格式化内的时间时强制要求该时间!
	fmt.Println("当前时间：",now.Format("2006/01"))  //该Format格式化内的时间时强制要求该时间!

	//时间常量：
	/*
	Nanosecond Duration = 1 //纳秒
	Microsecond = 1000 * Nanosecond // 微秒
	Millisecond = 1000 * Microsecond //毫秒
	Second = 1000 * Millisecond //秒
	Minute = 60 * Second //分钟
	Hour = 60 * Minute //小时
	*/
	//常量的应用：
	num := 0
	for {
		if num == 2 {
			break
		}
		num++
		fmt.Println(num)
		time.Sleep(time.Second * 1)
	}

	//获取当前unix时间戳和unixnano时间戳（作用是用于获取随机数）
	unix := now.Unix()
	unixnano := now.UnixNano()
	fmt.Println("Unix : ",unix," Unixnano : ",unixnano)

	//时间最佳案例
	start := time.Now().Unix()
	temp()
	end := time.Now().Unix()
	fmt.Println("temp() 所耗费时间是（s）：",(end-start))
}
